#include "types.h"

#define UART0 0x10000000L

#define Reg(reg) ((volatile uint8*)(UART0 + reg))
#define THR 0  // 发送寄存器
#define LSR 5  // 状态寄存器
#define LSR_TX_IDLE (1 << 5) // 发送空闲位

void uart_putc(char c) {
    // 等待发送就绪
    while ((*Reg(LSR) & LSR_TX_IDLE) == 0);
    *Reg(THR) = c;
}

void uart_puts(char *s) {
    while (*s) {
        uart_putc(*s++);
    }
}